package com.questions.helper.util;

import java.util.regex.Pattern;
import java.util.regex.Matcher;

public class MixedParenthesesRemover {

    /**
     * 删除以括号开头的内容（支持中英文括号混用）
     */
    public static String removeStartingParentheses(String text) {
        return removeStartingParentheses(text, true);
    }

    /**
     * 删除以括号开头的内容
     *
     * @param text       输入文本
     * @param trimSpaces 是否删除后面的空格
     * @return 处理后的文本
     */
    public static String removeStartingParentheses(String text, boolean trimSpaces) {
        if (text == null) return null;

        String regex = trimSpaces ?
                "^[\\(（][^)\\)]*?[\\)）]\\s*" :  // 非贪婪匹配
                "^[\\(（][^)\\)]*?[\\)）]";

        return text.replaceFirst(regex, "");
    }

    /**
     * 更严格的匹配：要求括号类型一致
     */
    public static String removeStrictParentheses(String text) {
        if (text == null) return null;

        // 英文括号匹配英文括号，中文括号匹配中文括号
        Pattern pattern = Pattern.compile("^(\\([^)]*\\)|（[^）]*）)\\s*");
        return pattern.matcher(text).replaceFirst("");
    }

    /**
     * 获取括号内的内容（支持混用）
     */
    public static String getParenthesesContent(String text) {
        if (text == null) return null;

        Pattern pattern = Pattern.compile("^[\\(（]([^)\\)]*?)[\\)）]");
        Matcher matcher = pattern.matcher(text);

        if (matcher.find()) {
            return matcher.group(1);
        }
        return null;
    }

    /**
     * 检查是否以括号开头
     */
    public static boolean startsWithParentheses(String text) {
        if (text == null) return false;
        return text.startsWith("(") || text.startsWith("（");
    }
}